package com.itheima.mobilesafe74.utils;


import android.content.Context;
import android.content.SharedPreferences;

public class SpUtil {
    private static SharedPreferences sp;
    //写
    /*
    * ctx 上下文环境
    * key 存储节点的名称
    * value 存储节点的值 boolean
    * 写入boolean变量值sp中
    * */
    public static void putBoolean(Context ctx, String key, boolean value){
        //存储节点文件名称，读写方式
        if(sp == null){
            sp=ctx.getSharedPreferences("config",Context.MODE_PRIVATE);
        }
        sp.edit().putBoolean(key, value).commit();
    }
    //读
    /*读取boolean变量值从
    sp中
    * ctx 上下文环境
    * key 存储节点的名称
    * defValue 没有此节点的默认值
    * 返回默认值或者此节点读取到的结果
    * */
    public static boolean getBoolean(Context ctx, String key, boolean defValue){
        //存储节点文件名称，读写方式
        if(sp == null){
            sp=ctx.getSharedPreferences("config",Context.MODE_PRIVATE);
        }
        return sp.getBoolean(key, defValue);
    }
    //写
    /*
    * ctx 上下文环境
    * key 存储节点的名称
    * value 存储节点的值 string
    * 写入boolean变量值sp中
    * */
    public static void putString(Context ctx, String key, String value){
        //存储节点文件名称，读写方式
        if(sp == null){
            sp=ctx.getSharedPreferences("config",Context.MODE_PRIVATE);
        }
        sp.edit().putString(key, value).commit();
    }
    //读
    /*读取string变量值从
    sp中
    * ctx 上下文环境
    * key 存储节点的名称
    * defValue 没有此节点的默认值
    * 返回默认值或者此节点读取到的结果
    * */
    public static String getString(Context ctx, String key, String defValue){
        //存储节点文件名称，读写方式
        if(sp == null){
            sp=ctx.getSharedPreferences("config",Context.MODE_PRIVATE);
        }
        return sp.getString(key, defValue);
    }

    /*
    * 从sp移除指定节点
    * * ctx 上下文环境
    * key 需要移除节点的名称
    * */
    public static void remove(Context ctx, String key) {
        if(sp == null){
            sp=ctx.getSharedPreferences("config",Context.MODE_PRIVATE);
        }
        sp.edit().remove(key).commit();
    }

    //读
    /*读取string变量值从
    sp中
    * ctx 上下文环境
    * key 存储节点的名称
    * defValue 没有此节点的默认值
    * 返回默认值或者此节点读取到的结果
    * */
    public static int getInt(Context ctx, String key, int defValue){
        //存储节点文件名称，读写方式
        if(sp == null){
            sp=ctx.getSharedPreferences("config",Context.MODE_PRIVATE);
        }
        return sp.getInt(key, defValue);
    }

    //写
    /*
    * ctx 上下文环境
    * key 存储节点的名称
    * value 存储节点的值 int
    * 写入boolean变量值sp中
    * */
    public static void putInt(Context ctx, String key, int value){
        //存储节点文件名称，读写方式
        if(sp == null){
            sp=ctx.getSharedPreferences("config",Context.MODE_PRIVATE);
        }
        sp.edit().putInt(key, value).commit();
    }
}
